<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // promise 解决问题是回调地狱（通常是封装一个异步请求）
    // promise 三个状态 pending fulfilled failed
    // pending 等待的状态
    // fulfilled promise的resolve方法来确定的
    // failed  promise的reject方法来确定
    // promise的状态一旦确定 就不可改变

    // resolve()并且可以传一个值 resolve(123) resolve中的值可以通过promise实例的then方法拿到
    // reject() 也可以传一个值  reject('错误') reject中值可以通过promise实例的catch方法拿到

    function fn() {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          reject('错误')
        }, 2000);
      })
    }

    // const res = fn()
    // console.log(res)

    fn().then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
  </script>
</body>

</html>